home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / amiga / bmake15.lzh / dumprules.c < prev    next >
C/C++ Source or Header  |  1991-10-26  |  2KB  |  98 lines

  1. /*    dumprules.c
  2.  *    (c) Copyright 1991 by Ben Eng, All Rights Reserved
  3.  *
  4.  */
  5.  
  6. #include "make.h"
  7. #include "depend.h"
  8.  
  9. #if DEBUG
  10.  
  11. static void
  12. dump_macros( struct List *mlist )
  13. {
  14.     struct macro *mac;
  15.  
  16.     debugprintf( 2,( "** Macros **\n" ));
  17.  
  18.     for( mac = mlist->lh_Head; mac->node.ln_Succ; mac = mac->node.ln_Succ ) {
  19.         logprintf( "%s %s %s\n", mac->name,
  20.             (mac->flags & MF_SIMPLE) ? ":=" : "=", mac->expansion );
  21.     }
  22.     logprintf( "\n" );
  23. }
  24.  
  25. static void
  26. dump_dependencies( struct List *dlist )
  27. {
  28.     struct depend *dep;
  29.  
  30.     for( dep = dlist->lh_Head; dep->node.ln_Succ; dep = dep->node.ln_Succ ) {
  31.         logprintf( " %s", dep->name );
  32.     }
  33.     logprintf( "\n" );
  34. }
  35.  
  36. static void
  37. dump_commands( struct List *clist )
  38. {
  39.     struct command *cmd;
  40.  
  41.     for( cmd = clist->lh_Head; cmd->node.ln_Succ; cmd = cmd->node.ln_Succ ) {
  42.         logprintf( "\t%s\n", cmd->cmd );
  43.     }
  44. }
  45.  
  46. static void
  47. dump_targets( struct List *tlist )
  48. {
  49.     struct target *targ;
  50.  
  51.     debugprintf( 2, ( "** Target Rules **\n" ));
  52.  
  53.     for( targ = tlist->lh_Head; targ->node.ln_Succ; targ =
  54.         targ->node.ln_Succ ) {
  55.         logprintf( "\n%s", targ->name );
  56.         if( targ->flags & TF_BUILTIN )
  57.             logprintf( " [BUILTIN]" );
  58.         if( targ->flags & TF_PHONY )
  59.             logprintf( " [PHONY]" );
  60.         if( targ->flags & TF_ALWAYS )
  61.             logprintf( " [ALWAYS]" );
  62.         if( targ->flags & TF_NEVER )
  63.             logprintf( " [NEVER]" );
  64.         if( targ->flags & TF_ONCE )
  65.             logprintf( " [ONCE]" );
  66.         logprintf( ":" );
  67.         dump_dependencies( &targ->dependlist );
  68.         dump_commands( ( targ->flags & TF_OWNER ) ?
  69.             &targ->commandlist : targ->alternate );
  70.     }
  71. }
  72.  
  73. static void
  74. dump_patternrules( struct List *plist )
  75. {
  76.     struct patternrule *pr;
  77.  
  78.     debugprintf( 2, ( "** Pattern Rules **\n" ));
  79.  
  80.     for( pr = plist->lh_Head; pr->node.ln_Succ; pr = pr->node.ln_Succ ) {
  81.         logprintf( "\n%s : %s\n", pr->tar_pat, pr->dep_pat );
  82.         dump_commands( ( pr->targ->flags & TF_OWNER ) ?
  83.             &pr->targ->commandlist : pr->targ->alternate );
  84.     }
  85. }
  86.  
  87.  
  88. void
  89. dump_all( void )
  90. {
  91.     debugprintf( 2, ("\n** Debug output for rules ** \n" ));
  92.     dump_macros( &Global.macrolist );
  93.     dump_patternrules( &Global.patternlist );
  94.     dump_targets( &Global.targetlist );    
  95. }
  96.  
  97. #endif
  98.